/**
 * 带颜色的日志工具
 * 提供 info、warn、error 三种日志输出方式
 * 使用 ANSI 转义序列为日志添加不同颜色
 */

// ANSI 颜色转义序列
const colors = {
  reset: '\x1b[0m',
  bright: '\x1b[1m',
  green: '\x1b[32m',
  yellow: '\x1b[33m',
  red: '\x1b[31m',
};

export const logger = {
  /**
   * 信息日志 - 绿色
   * @param args 任意数量的参数，会打印到控制台
   * 输出示例: [INFO] Hello World
   */
  info: (...args: any[]) => console.log(`${colors.green}${colors.bright}[INFO]${colors.reset}`, ...args),

  /**
   * 警告日志 - 黄色
   * @param args 任意数量的参数，会打印到控制台
   * 输出示例: [WARN] Something might be wrong
   */
  warn: (...args: any[]) => console.warn(`${colors.yellow}${colors.bright}[WARN]${colors.reset}`, ...args),

  /**
   * 错误日志 - 红色
   * @param args 任意数量的参数，会打印到控制台
   * 输出示例: [ERR] Something went wrong
   */
  error: (...args: any[]) => console.error(`${colors.red}${colors.bright}[ERR]${colors.reset}`, ...args),
};
